#include <raylib.h>

// 定义模块内变量，表示矩形位置大小和颜色
// 通过键盘和鼠标改变其状态
static float x = 100;
static float y = 100;
static float w = 50;
static float h = 50;
static Color color = GREEN;

//
//  @brief 检测键盘事件(上下左右键移动位置)
//
//
void detect_key_evt() {
  if (IsKeyPressed(KEY_UP)) {
    y -= 5;
  }
  if (IsKeyPressed(KEY_DOWN)) {
    y += 5;
  }
  if (IsKeyPressed(KEY_LEFT)) {
    x -= 5;
  }
  if (IsKeyPressed(KEY_RIGHT)) {
    x += 5;
  }
}

//
//  @brief 检测鼠标是否在矩形上面(改变颜色)
//
void detect_mouse_evt() {
  Vector2 vec = GetMousePosition();
  bool hover = vec.x >= x && vec.x <= (x + w) && vec.y >= y && vec.y <= (y + h);
  color = hover ? RED : GREEN;
}

int main(void) {
  InitWindow(1200, 800, "hello");

  while (!WindowShouldClose()) {
    detect_key_evt();    // 处理键盘
    detect_mouse_evt();  // 处理鼠标

    BeginDrawing();

    ClearBackground(LIGHTGRAY);

    // 根据当前参数绘制矩形
    DrawRectangle(x, y, w, h, color);

    EndDrawing();
  }

  CloseWindow();

  return 0;
}
